package cn.yunhe.dao;

import cn.yunhe.entity.User;

import java.util.List;
import java.util.Map;

public interface IUserDao {
    /**
     * 用户注册方法
     * @param user 用户对象
     * @return 注册结果(根据是否有返回值判断数据插入是否成功)
     */
    int register(User user);

    /**
     * 用户登录方法
     * @param user 用户登录的对象
     * @return 根据该用户对象的账号密码查询数据库,返回该用户的权限
     */
    User login(User user);

    /**
     *
     * 通过用户编号获取用户全部信息
     * @param uId 用户编号
     * @return  用户对象
     */
    User getUserByuId(int uId);


    /**
     * 从数据库查询用户信息方法
     * @param
     * @return 查询到的用户对象集合
     */
    List<User> getUser(String username);


    /**
     *
     * @param map 封装用户对象和需要修改的状态
     * @return 该方法执行结果,若该值大于0,说明修改成功
     */
    int changeUserState(Map<String,Object> map);

    /**
     * 用户注册验证方法
     * @param username 用户注册时输入的用户名
     * @return 注册结果
     */
    boolean checkUserName(String username);

    /**
     * 检验用户名是否存在
     * @param username
     * @return 该用户名对应的用户对象
     */
    User checkUsername(String username);

    /**
     * 获取所有用户对象
     * @return
     */
    List<User> getFlag();

}
